package com.nami.dispatcher.domain.gateway;

import com.nami.gate.external.basic.cache.user.UserSessionRel;
import com.nami.gate.external.basic.cache.user.DeviceInfo;
import com.nami.gate.external.basic.cache.user.UserDeviceRel;


import java.util.List;
import java.util.Map;

public interface UserGateway {
    List<DeviceInfo> getOnlineDevicesExceptThisDevice(String appKey, String userId, String instanceId);
    List<DeviceInfo> getOnlineDevicesByUserId(String appKey, String userId);
    UserDeviceRel getOnlUserDetailInfoById(String appKey, String userId);
    Map<String, List<UserSessionRel>> getOnlineDevicesByMqTagsClassification(String appKey, List<String> userIds);
    boolean removeOfflineDevice(String appKey, String userId, String instanceId);
    void markOnlineUserInvalid(String userId);
}
